package com.dragon.modules.yuegou.model.wallet;

import com.dragon.modules.yuegou.entity.wallet.CheckWithdrawRecordEntity;
import com.dragon.modules.yuegou.enums.wallet.CheckWithdrawRecordStatus;
import com.dragon.modules.yuegou.enums.wallet.CheckWithdrawRecordUserType;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 提现审核记录模型类
 * 
 * @author pbuilder generated
 * @date 2019-11-19 19:23:49
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class CheckWithdrawRecord extends CheckWithdrawRecordEntity {

	/**
	 * 构造一个空提现审核记录模型对象
	 */
	public CheckWithdrawRecord(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个提现审核记录模型对象
	 * 
	 * @param entity 实体对象
	 */
	public CheckWithdrawRecord(CheckWithdrawRecordEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个提现审核记录模型对象
	 * 
	 * @param other 其它对象
	 */
	public CheckWithdrawRecord(CheckWithdrawRecord other){
		super(other);
	}


	@Override
	public String getId() {
    	return id;
    }

    /**
	 * 设置提现审核记录id
	 * 
	 * @param id 提现审核记录id
	 * @return 当前对象
	 */
    public CheckWithdrawRecord id(String id) {
    	this.id = id;
    	return this;
    }

	@Override
	public String getUserId() {
    	return userId;
    }

    /**
	 * 设置用户id
	 * 
	 * @param userId 用户id
	 * @return 当前对象
	 */
    public CheckWithdrawRecord userId(String userId) {
    	this.userId = userId;
    	return this;
    }

	@Override
	public String getWalletId() {
    	return walletId;
    }

    /**
	 * 设置钱包ID
	 * 
	 * @param walletId 钱包ID
	 * @return 当前对象
	 */
    public CheckWithdrawRecord walletId(String walletId) {
    	this.walletId = walletId;
    	return this;
    }

	@Override
	public CheckWithdrawRecordUserType getUserType() {
    	return userType;
    }

    /**
	 * 设置[枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER
	 * 
	 * @param userType [枚举]用户类型：0-会员-MEMBER、1-商户用户-MERCHANT_USER
	 * @return 当前对象
	 */
    public CheckWithdrawRecord userType(CheckWithdrawRecordUserType userType) {
    	this.userType = userType;
    	return this;
    }

	@Override
	public BigDecimal getWithdrawDeposit() {
    	return withdrawDeposit;
    }

    /**
	 * 设置提现金额
	 * 
	 * @param withdrawDeposit 提现金额
	 * @return 当前对象
	 */
    public CheckWithdrawRecord withdrawDeposit(BigDecimal withdrawDeposit) {
    	this.withdrawDeposit = withdrawDeposit;
    	return this;
    }

	@Override
	public BigDecimal getAmountAfterWithdrawal() {
    	return amountAfterWithdrawal;
    }

    /**
	 * 设置提现后金额
	 * 
	 * @param amountAfterWithdrawal 提现后金额
	 * @return 当前对象
	 */
    public CheckWithdrawRecord amountAfterWithdrawal(BigDecimal amountAfterWithdrawal) {
    	this.amountAfterWithdrawal = amountAfterWithdrawal;
    	return this;
    }

	@Override
	public String getBankOfDeposit() {
    	return bankOfDeposit;
    }

    /**
	 * 设置开户行
	 * 
	 * @param bankOfDeposit 开户行
	 * @return 当前对象
	 */
    public CheckWithdrawRecord bankOfDeposit(String bankOfDeposit) {
    	this.bankOfDeposit = bankOfDeposit;
    	return this;
    }

	@Override
	public String getEncBankNo() {
    	return encBankNo;
    }

    /**
	 * 设置银行卡号
	 * 
	 * @param encBankNo 银行卡号
	 * @return 当前对象
	 */
    public CheckWithdrawRecord encBankNo(String encBankNo) {
    	this.encBankNo = encBankNo;
    	return this;
    }

	@Override
	public String getAccountName() {
    	return accountName;
    }

    /**
	 * 设置账户名
	 * 
	 * @param accountName 账户名
	 * @return 当前对象
	 */
    public CheckWithdrawRecord accountName(String accountName) {
    	this.accountName = accountName;
    	return this;
    }

	@Override
	public CheckWithdrawRecordStatus getStatus() {
    	return status;
    }

    /**
	 * 设置[枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS
	 * 
	 * @param status [枚举]提现状态：0-待审核-CHECKING、1-已通过-PASSED、2-未通过-UNPASS
	 * @return 当前对象
	 */
    public CheckWithdrawRecord status(CheckWithdrawRecordStatus status) {
    	this.status = status;
    	return this;
    }

	@Override
	public String getCreatedBy() {
    	return createdBy;
    }

    /**
	 * 设置创建人ID
	 * 
	 * @param createdBy 创建人ID
	 * @return 当前对象
	 */
    public CheckWithdrawRecord createdBy(String createdBy) {
    	this.createdBy = createdBy;
    	return this;
    }

	@Override
	public LocalDateTime getCreatedTime() {
    	return createdTime;
    }

    /**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 * @return 当前对象
	 */
    public CheckWithdrawRecord createdTime(LocalDateTime createdTime) {
    	this.createdTime = createdTime;
    	return this;
    }

	@Override
	public Long getCheckedBy() {
    	return checkedBy;
    }

    /**
	 * 设置审核人
	 * 
	 * @param checkedBy 审核人
	 * @return 当前对象
	 */
    public CheckWithdrawRecord checkedBy(Long checkedBy) {
    	this.checkedBy = checkedBy;
    	return this;
    }

	@Override
	public LocalDateTime getCheckedTime() {
    	return checkedTime;
    }

    /**
	 * 设置审核时间
	 * 
	 * @param checkedTime 审核时间
	 * @return 当前对象
	 */
    public CheckWithdrawRecord checkedTime(LocalDateTime checkedTime) {
    	this.checkedTime = checkedTime;
    	return this;
    }
}
